SQL Any और ALL ऑपरेटर्स क्या हैं?
कोई भी और सभी ऑपरेटर आपको एकल कॉलम मान की तुलना अन्य मानों की श्रेणी से करने की अनुमति देते हैं।
SQL ANY Operator
ANY operator:
- अंत में एक बूलियन मान लौटाता है
- सबक्वेरी मानों मेंकोईयदि कोई भी शर्त पूरी होती है तो सत्य लौटाता है
श्रेणी में कोई भी मानकोईयदि फ़ंक्शन किसी के लिए सत्य है तो स्थिति सत्य है।
कोई वाक्यविन्यास
SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY
(SELECT column_name
FROM table_name
WHERE condition);
नोट:
ऑपरेटर को एक मानक तुलना ऑपरेटर (=, <>, !=, >, >=, <, या <=) होना चाहिए।
SQL ALL Operator
ALL operator:
- अंत में एक बूलियन मान लौटाता है
- सबक्वेरी मानसब कुछशर्त पूरी होने पर TRUE लौटाता है
- SELECT, WHERE और HAVING स्टेटमेंट के साथ प्रयोग किया जाता है
ALL मानों की एक श्रृंखला हैप्रत्येक वस्तु के लिएइसका मतलब यह है कि स्थिति तभी सत्य है जब फ़ंक्शन सत्य है।
चयन के साथ सभी वाक्यविन्यास
SELECT ALL column_name(s)
FROM table_name
WHERE condition;
WHERE या HAVING के साथ सभी वाक्यविन्यास
SELECT column_name(s)
FROM table_name
WHERE column_name operator ALL
(SELECT column_name
FROM table_name
WHERE condition);
नोट:
ऑपरेटर को एक मानक तुलना ऑपरेटर (=, <>, !=, >, >=, <, या <=) होना चाहिए।
प्रदर्शन डेटाबेस
नीचे नॉर्थविंड नमूना डेटाबेस में "उत्पाद" तालिका से एक चयन दिया गया है:
उत्पाद तालिका
+-----------+------------------------------+------------+------------+-----------------------+-------+
| ProductID | ProductName | SupplierID | CategoryID | Unit | Price |
+-----------+------------------------------+------------+------------+-----------------------+-------+
| 1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18 |
| 2 | Chang | 1 | 1 | 24 - 12 oz bottles | 19 |
| 3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10 |
| 4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 22 |
| 5 | Chef Anton's Gumbo Mix | 2 | 2 | 36 boxes | 21.35 |
| 6 | Grandma's Boysenberry Spread | 3 | 2 | 12 - 8 oz jars | 25 |
| 7 | Uncle Bob's Organic Dried... | 3 | 7 | 12 - 1 lb pkgs. | 30 |
| 8 | Northwoods Cranberry Sauce | 3 | 2 | 12 - 12 oz jars | 40 |
| 9 | Mishi Kobe Niku | 4 | 6 | 18 - 500 g pkgs. | 97 |
+-----------+------------------------------+------------+------------+-----------------------+-------+
और "ऑर्डर विवरण" तालिका से एक चयन:
ऑर्डर विवरण तालिका
+---------------+---------+-----------+----------+
| OrderDetailID | OrderID | ProductID | Quantity |
+---------------+---------+-----------+----------+
| 1 | 10248 | 11 | 12 |
| 2 | 10248 | 42 | 10 |
| 3 | 10248 | 72 | 5 |
| 4 | 10249 | 14 | 9 |
| 5 | 10249 | 51 | 40 |
| 6 | 10250 | 41 | 10 |
| 7 | 10250 | 51 | 35 |
| 8 | 10250 | 65 | 15 |
| 9 | 10251 | 22 | 6 |
| 10 | 10251 | 57 | 15 |
+---------------+---------+-----------+----------+
एसक्यूएल कोई भी उदाहरण
निम्नलिखित SQL कथन ऑर्डर विवरण तालिका में ProductName को मात्रा 10 के बराबर सूचीबद्ध करता हैकोईयदि रिकॉर्ड हैं (जो सत्य लौटाता है क्योंकि मात्रा कॉलम में 10 मान हैं):
उदाहरण
SELECT ProductName
FROM Products
WHERE ProductID = ANY
(SELECT ProductID
FROM OrderDetails
WHERE Quantity = 10);
निम्नलिखित SQL कथन ऑर्डर विवरण तालिका में उत्पाद नाम, 99 से अधिक मात्रा को सूचीबद्ध करता हैकोईयदि रिकॉर्ड हैं (यह सत्य लौटाएगा क्योंकि मात्रा कॉलम का कुछ मान 99 से अधिक है):
उदाहरण
SELECT ProductName
FROM Products
WHERE ProductID = ANY
(SELECT ProductID
FROM OrderDetails
WHERE Quantity > 99);
निम्नलिखित SQL कथन ऑर्डर विवरण तालिका में 1000 से अधिक मात्रा वाले उत्पाद नाम को सूचीबद्ध करता है।कोईयदि रिकॉर्ड हैं (जो गलत लौटाता है क्योंकि मात्रा कॉलम में 1000 से अधिक कोई मान नहीं है):
उदाहरण
SELECT ProductName
FROM Products
WHERE ProductID = ANY
(SELECT ProductID
FROM OrderDetails
WHERE Quantity > 1000);
एसक्यूएल सभी उदाहरण
निम्नलिखित SQL कथनसभीउत्पाद के नाम भी सूचीबद्ध करता है:
उदाहरण
SELECT ALL ProductName
FROM Products
WHERE TRUE;
निम्न SQL कथन ऑर्डर विवरण तालिका में उत्पाद नाम सूचीबद्ध करता हैसभीयदि प्रविष्टियाँ मात्रा 10 के बराबर हैं। यह FALSE लौटाएगा क्योंकि मात्रा कॉलम में कई अलग-अलग मान हैं (सिर्फ मान 10 नहीं):
उदाहरण
SELECT ProductName
FROM Products
WHERE ProductID = ALL
(SELECT ProductID
FROM OrderDetails
WHERE Quantity = 10);
कोई भी बनाम सभी दृश्य प्रतिनिधित्व
ANY Operator
स्थिति:मात्रा = 10 इंचकोईउत्पादों
ALL Operator
स्थिति:मात्रा = 10 इंचसभीउत्पादों
टिप्पणी: ANY कोईयदि कोई मिलान रिकॉर्ड है तो सभी सत्य लौटाते हैंसभीTRUE तभी लौटाता है जब रिकॉर्ड भी मेल खाते हों।
व्यावहारिक उपयोग के मामले
औसत मूल्यों से अधिक
औसत कीमत से अधिक महंगाकोईउत्पादों
SELECT ProductName
FROM Products
WHERE Price > ANY (
SELECT AVG(Price)
FROM Products
GROUP BY CategoryID
);
सभी शर्तें
सभीग्राहकों द्वारा ऑर्डर किए गए उत्पाद
SELECT ProductName
FROM Products
WHERE ProductID = ALL (
SELECT DISTINCT ProductID
FROM Orders
WHERE CustomerID IN (
SELECT CustomerID FROM Customers
)
);
न्यूनतम मूल्य फ़िल्टरिंग
न्यूनतम कीमत से भी कमकोईउत्पादों
SELECT ProductName
FROM Products
WHERE Price < ANY (
SELECT MIN(Price)
FROM Products
GROUP BY SupplierID
);
किसी भी बनाम IN की तुलना
ANY Operator
- तुलना ऑपरेटरों (>, <, =, आदि) के साथ उपयोग किया जा सकता है
- मूल्यों की एक श्रृंखला के साथ तुलना उपयोगी है
- जटिल परिस्थितियों के लिए उपयुक्त
- सबक्वेरी परिणामों के साथ काम करती है
WHERE Price > ANY (subquery)
IN Operator
- (=) का उपयोग समान मानों के परीक्षण के लिए किया जाता है।
- स्थिर मूल्य सूचियों के लिए उपयुक्त
- सरल समानता परीक्षणों के लिए उपयुक्त
- स्थिर सूचियों या उपश्रेणियों के साथ काम करता है
WHERE Price IN (10, 20, 30)
नोट:
= ANYहैINके बराबर है, लेकिन> ANYया< ANYकिसी भी जैसे अन्य तुलना ऑपरेटरों के साथ उपयोग किए जाने पर अधिक लचीलापन प्रदान करता है।